ควรทำอย่างไร? เมื่อทำ Key Pair หายไปจาก EC2 – บทความนี้มีคำตอบ
สวัสดีเพื่อนๆ ชาว Amazon Service ทุกท่าน ผมป๊อปครับ ครั้งนี้ผมจะมาแนะนำเกี่ยวกับวิธีการเปลี่ยน Key pair ในกรณีที่ Key pair ตัวเก่าโดนลบไป หรือ หายไปด้วยเหตุผลอื่นๆ ครับ
สิ่งที่ต้องมี
ในกรณีที่มี EC2 Instance อยู่แล้ว แต่เผลอลบ Key Pair หรืออาจจะหายไปจากสาเหตุอื่นๆ สามารถข้ามขั้นตอนการสร้าง EC2 ไปได้เลย
แต่สำหรับผู้ที่ต้องการทดสอบทำการเปลี่ยน Key Pair ก็ต้องทำการสร้าง EC2 Instance ขึ้นมาก่อน โดยในตัวอย่างนี้จะใช้เป็นชื่อtinnakorn-reset-keypair
สามารถดูวิธีการได้ที่ลิงก์ด้านล่างนี้เลย
ลบ Key Pair ตัวเก่าออกจาก Console EC2
เมื่อติดตั้งเสร็จเรียบร้อยแล้ว ให้ทำการลบ Key Pair ตัวเก่าออกจากหน้า Console EC2 และไฟล์.ppk
ในเครื่องคอมพิวเตอร์ของเรา เพื่อจำลองว่า Key Pair ของเราหาย หรือ ถูกลบออกไปจาก EC2
ทีนี้ทำการทดสอบโดยการเข้าไปยัง PuTTy อีกครั้งก็จะเกิด Error
มาที่หน้า Console EC2 ในส่วนของฟังก์ชัน Key pairs
เลือก Key pair ของเรา แล้วไปที่Actions ▼
ตามด้วยเลือกDelete
พิมพ์คำว่าDelete
ลงในช่องตามคำแนะนำด้านบนเพื่อยืนยันการลบ
Stop EC2 Instance
เมื่อลบ Key pair และไม่สามารถเข้าไปยัง PuTTy ได้แล้วให้ Stop EC2 Instance เตรียมไว้
มาที่หน้า Console EC2 ในส่วนของฟังก์ชัน Instance
เข้ามายังหน้า Instance ของเรา เลือกInstance state ▼
ตามด้วยเลือกStop instance
คลิกStop
เมื่อเสร็จแล้ว Instance state จะเป็น Stopped
สร้าง Key Pair ตัวใหม่
สมมุติว่า Key Pair ของเราหาย หรือ ถูกลบออกไปจาก EC2 แล้ว ให้ทำการสร้าง Key Pair ตัวใหม่ขึ้นมา
การสร้าง Key Pair ตัวใหม่นี้จะใช้เป็นชื่อtinnakorn-reset-new-keypair
การจัดการไฟล์ Key Pair ตัวใหม่ด้วย PuTTygen
คลิกที่ Icon ค้นหาตรงแถบเมนูด้านล่าง พิมพ์คำว่า?︎ PuTTYgen
ลงไป และคลิกเข้าไปที่PuTTYgen
เมื่อเปิดขึ้นมาแล้วจะมีหน้าตาแบบนี้ คลิกที่Load
ได้เลย
เลือกไฟล์ key pair ที่เราเก็บไว้ โดยปกติแล้วจะอยู่ใน Download จากนั้นคลิกOpen
เมื่อทำการ Load เข้ามาแล้ว ให้ Copy Key ในช่องสีแดงนี้
ต่อมาพิมพ์ssh-rsa
แล้วเว้นวรรค 1 ครั้ง ตามด้วยวาง Public key pair ที่ Copy มาเมื่อสักครู่นี้ จากนั้นทำให้เป็นบรรทัดเดียวกันทั้งหมด เช่น
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAA...
ในรูปด้านล่างนี้ไม่มีการเว้นบรรทัด ทุกตัวอักษรคือบรรทัดเดียวกันหมด
การเชื่อมต่อ Key pair ใน Edit user data
เราจะทำการเชื่อมต่อ Key pair โดยการเพิ่ม Code ลงใน Edit user data
เลือกActions ▼
เลือกInstance settings ▶
และเลือกEdit user data
เมื่อเข้ามาแล้วเลื่อนลงมาด้านล่างสุด จะมีช่องให้ใส่ Code ช่องนี้คือ Textarea สามารถปรับขนาดได้ตามต้องการ (ต้อง Stop Instance ก่อน จึงจะสามารถใส่ Code ลงไปได้)
จากนั้น Copy Code ด้านล่างนี้วางลงในช่อง Textarea
Content-Type: multipart/mixed; boundary="//" MIME-Version: 1.0 --// Content-Type: text/cloud-config; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="cloud-config.txt" #cloud-config cloud_final_modules: - [users-groups, always] users: - name: ec2-user ssh-authorized-keys: - PublicKeypair
ให้ลบPublicKeypair
ตรงบรรทัดสุดท้ายออก แล้วใส่ Public Keypair ลงไปแทนที่ตามรูปภาพด้านล่าง ตามด้วยคลิกSave
เพียงเท่านี้การตั้งค่าก็เสร็จเรียบร้อย
ทดสอบการเชื่อมต่อของ Amazon Linux 2
เข้ามาที่ EC2 Instance ของเราอีกครั้ง
เลือกInstance state ▼
และเลือกStart instance
กลับมาที่ PuTTy ในส่วนของ Connection > SSH > Auth แล้วทำการBrowse...
ไฟล์.ppk
เข้ามาใหม่
จากนั้นไปที่หัวข้อ Session แล้วSave
การตั้งค่าของ PuTTy อีกครั้ง และกดOpen
จะเห็นว่าเราสามารถใช้ Key pair ตัวใหม่ Login เข้ามายัง Amazon Linux 2 ได้แล้ว
สรุป
การสาธิตของการเชื่อมต่อ Key pair ที่เราเผลอไปลบ หรือ หายไปด้วยสาเหตุอื่นๆ สามารถแก้ไขได้ง่ายๆ โดยสร้าง Key pair ตัวใหม่ขึ้นมาแล้วทำการตั้งค่าที่ Edit user data ใน EC2 Instance แล้วลองทำการเชื่อมต่อ Amazon Linux 2 อีกครั้ง ถ้าสามารถ Login ได้ก็หมายความว่าการตั้งค่าเสร็จสมบูรณ์นั่นเองครับ
หวังว่าจะเป็นประโยชน์ให้กับเพื่อนๆ ที่เจอกับปัญหานี้ด้วยครับ ขอบคุณครับ ?
บทความที่เกี่ยวข้อง
อ้างอิง : https://aws.amazon.com/premiumsupport/knowledge-center/user-data-replace-key-pair-ec2/